﻿namespace Algorytm
{
    public class Algorytm_Krawedz
    {
        public int skad;
        public int cel;
        public int przepustowosc;
        public int przeplyw;
        public Algorytm_Krawedz druga_krawedz;

        public Algorytm_Krawedz()
        {
            druga_krawedz = null;
        }

        public void pusc_przeplyw()
        {
            przeplyw += 1;
            if (druga_krawedz != null)
                druga_krawedz.dodaj_przeplyw(-1);
        }

        public bool pelna()
        {
            if (przeplyw == przepustowosc) return true;
            else return false;
        }

        public Algorytm_Krawedz(int od_wierzcholka, int do_wierzcholka, int max_przepustowosc)
        {
            skad = od_wierzcholka;
            cel = do_wierzcholka;
            przepustowosc = max_przepustowosc;
            przeplyw = 0;
            druga_krawedz = null;
        }

        public Algorytm_Krawedz(int od_wierzcholka, int do_wierzcholka, int max_przepustowosc, Algorytm_Krawedz krawedz_przeciwna)
        {
            skad = od_wierzcholka;
            cel = do_wierzcholka;
            przepustowosc = max_przepustowosc;
            przeplyw = 0;
            druga_krawedz = krawedz_przeciwna;
        }

        public void dodaj_krawedz_przeciwna(Algorytm_Krawedz przeciwna_krawedz)
        {
            druga_krawedz = przeciwna_krawedz;
        }

        private void dodaj_przeplyw(int ile)
        {
            przeplyw += ile;
        }
    }
}